#ifndef GDN_SOUNDMANAGER_H
#define GDN_SOUNDMANAGER_H

#include "gdn/Manager.h"
#include "gdn/SoundBuffer.h"
#include "gdn/Sound.h"

namespace gdn
{
	class SoundManager : protected gdn::Manager< SoundBuffer >
	{
		public:
			SoundManager();
			virtual ~SoundManager();

			virtual void Load( const std::string& resName );
			virtual bool IsLoaded( const std::string& resName );
			virtual void Unload( const std::string& resName );

			virtual void LoadAll();
			virtual void UnloadAll();


			virtual void AddResource( const std::string& resName, SoundBuffer* resource = NULL );
			Sound GetResource( const std::string& resName );
			virtual void RemoveResource( const std::string& resName );

			virtual bool DoesResourceExist( const std::string& resName );
	};
}

#endif // GDN_SOUNDMANAGER_H
